package com.data.platform.core.utils;


import java.sql.Date;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.util.TimeZone;

/**
 * 日期工具类
 */
public class DateUtils {

    /**
     * 日期的转换 (LocalDaeTime类型转换成long类型)
     *
     * @param date LocalDateTime对象
     * @return long类型的时间
     */
    public static long dateTimeToLong(LocalDateTime date) {
        return Date.from(date.atZone(ZoneId.systemDefault()).toInstant()).getTime();
    }

    /**
     * 日期的转换 (long类型转换成LocalDaeTime类型)
     *
     * @param timestamp long类型时间
     * @return LocalDateTime对象
     */
    public static LocalDateTime longToDateTime(long timestamp) {
        // 时间戳转换成Instant
        Instant instant = Instant.ofEpochMilli(timestamp);

        // 使用UTC时区将Instant转换成ZonedDateTime
        ZonedDateTime zonedDateTime = instant.atZone(ZoneId.systemDefault());

        // 从ZonedDateTime中获取LocalDateTime
        return zonedDateTime.toLocalDateTime();
    }
}
